____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Rasterzeileninterrupt
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Der Rasterzeileninterrupt ist ein Hardwareinterrupt, der ausgelΓΆst wird, wenn der Videochip eines Computers die Darstellung einer bestimmten Zeile auf dem Bildschirm beginnt.
Die Rasterzeileninterruptprogrammierung wurde intensiv auf den Heimcomputern der 1980er Jahre angewendet. Sie wurde bald zu einem festen Bestandteil vieler fΓΌr 8-Bit-Heimcomputer geschriebener Computerspiele.
Der Bildaufbau auf Bildschirmen findet zeilenweise statt. Der Videochip, der die Bilddaten ausgibt, enthΓ€lt dazu unter anderem einen ZΓ€hler fΓΌr die momentan auszugebende Bildzeile, die sogenannte Rasterzeile. UnterstΓΌtzt der Videochip einen Rasterzeileninterrupt, kann vom Programm eine Zeile festgelegt werden, bei der dieser Interrupt ausgelΓΆst werden soll. Erreicht der RasterzeilenzΓ€hler diesen Wert, signalisiert der Videochip eine Interruptanforderung an den Prozessor. Dieser unterbricht das laufende Programm und fΓΌhrt eine Unterbrechungsroutine (Interrupt Handler) aus. Am Ende der Unterbrechungsroutine fΓ€hrt der Prozessor mit dem unterbrochenen Programm fort.
Der Rasterzeileninterrupt vereinfacht es, Programmteile beim Erreichen einer bestimmten Bildschirmzeile auszufΓΌhren, also mit dem Bildaufbau zu synchronisieren. Das Programm muss nicht aktiv auf das Erreichen dieser Position warten, sondern wird durch die vom Videochip signalisierte Unterbrechungsanforderung (Interrupt) informiert. So lassen sich beispielsweise sehr einfach wΓ€hrend des Bildaufbaus Grafikmodi wechseln (Split Screen) oder normalerweise fΓΌr das Gesamtbild geltende Farben umschalten. Auch die gleichzeitige Darstellung einer grΓΆΓeren Anzahl hardwaregenerierter Sprites als ursprΓΌnglich vom System vorgesehen durch Γnderung der Bildschirmpositionen nicht mehr benΓΆtigter Sprites aus dem bereits ΓΌberstrichenen in den noch vom Elektronenstrahl zu zeichnenden Bildschirmbereich wird durch den Rasterinterrupt vereinfacht (z. B. bei Spielen fΓΌr den Commodore 64).
Contents
β’ Hardware
β’ Literatur
β’ Weblinks
β’ Einzelnachweise
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Hardware
Ein bekannter klassischer Grafikchip, bei dem der Hersteller die Mechanismen fΓΌr einen Rasterzeileninterrupt eingebaut hat, ist der VIC-II (MOS Technology 6569 und Γ€hnliche Varianten). Dieser wurde unter anderem im Commodore 64 verbaut. ZeitgenΓΆssische 8-Bit-Hardware wie der Atari 800,cite-ref-1[1] Homecomputer nach dem MSX-Standard oder der Schneider CPC beherrschten ihn ebenfalls. Aber auch jΓΌngere Hardware unterstΓΌtzt Rasterzeileninterrupts, wie z. B. das Megadrive,cite-ref-2[2] das Super Nintendo, der Game Boy Advancecite-ref-3[3] oder der GameCube, wo die Technik oft in Spielen fΓΌr diverse optische Effekte eingesetzt wurde.
Literatur
β’ Axel Plenge: Das Grafikbuch zum Commodore 64. Data Becker Verlag, 1984, ISBN 3-89011-009-6.
β’ Effekthascherei. In: 64βer Magazin. Nr. 9. Franzis Verlag, September 1997 (Online [abgerufen am 21. September 2021]).
β’ Steve Collins: Game graphics during the 8-bit computer era. In: ACM SIGGRAPH Computer Graphics. Band 32, Nr. 2. ACM, 1998, ISSN 0097-8930 (siggraph.org).
Weblinks
β’ Text zur Programmierung des Rasterzeileninterrupts am C64 (englisch)
β’ Ivo Herzeg: Interruptkurs in der Magic Disk 64, CP Verlag
β’ Michael Steil: The Ultimate Commodore 64 Talk auf YouTube β Vortrag auf dem 25. Chaos Communication Congress (englisch)
Einzelnachweise